const {SyncBailHook} = require('tapable')

let hook = new SyncBailHook(['name', 'age'])

// 定义
hook.tap('fn1', function (name, age) {
    console.log('fn1--->', name, age)
})

// 返回undefined不会熔断
hook.tap('fn2', function (name, age) {
    console.log('fn2--->', name, age)
    return undefined
})

// 返回!undefined会熔断
hook.tap('fn2', function (name, age) {
    console.log('fn2--->', name, age)
    return 'ret2'
})

hook.tap('fn3', function (name, age) {
    console.log('fn3--->', name, age)
})

// 调用
hook.call('lg', 100)